#region Header
//=============================================================================
//                          GShield (Game Shield)
//=============================================================================
//
// Original Programmer: Shawn Jackson
// Company: WaveTech Digital Technologies (www.wtdt.com)
// Copyright: (c) 2006 WaveTech Digital Technologies, Inc. All Rights Reserved.
// Assembly: Engine
// Code File Name: ServiceManager.cs
// Code File Date: 05/12/2007
//
// Code File Info: Service Manager responsible for service control functions.
//=============================================================================
/*
 * UPDATES
 * -------
 */
#endregion Header

#region License
/*
  GShield - Game Shield
  Copyright (C) 2006-2007 WaveTech Digital Technologies, Inc.
                                http://www.wtdt.com

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/
#endregion License

#region Includes
using System.ServiceProcess;
#endregion Includes

namespace WaveTech.GShield.Engine.Managers
{
  public static class ServiceManager
  {
    #region Get Sentinel Service Status
    /// <summary>
    /// Checks to see if the Sentinel Service is running.
    /// </summary>
    /// <returns>True if the service is running, else false.</returns>
    public static bool GetSentinelServiceStatus()
    {
      try
      {
        ServiceController controller = new ServiceController();
        controller.ServiceName = "GShieldSentinel";
        
        if (controller.Status == ServiceControllerStatus.Running)
          return true;
        else
          return false;
      }
      catch
      {
        return false;
      }
    }
    #endregion Get Sentinel Service Status

    #region Start Sentinel Service
    /// <summary>
    /// Attempts to Start the Sentinel Service
    /// </summary>
    public static void StartSentinelService()
    {
      try
      {
        ServiceController controller = new ServiceController();
        controller.ServiceName = "GShieldSentinel";

        controller.Start();
      }
      catch
      { /* Eat the Exception */}
    }
    #endregion Start Sentinel Service
  }
}